// 2025/9/15
// 罗马数字转整数

class Solution {
public:
    int romanToInt(string s) {
        unordered_map<char, int> hash = {{'I', 1}, {'V', 5}, {'X', 10}, 
            {'L', 50}, {'C', 100}, {'D', 500}, {'M', 1000}
        };

        int n = s.size(), ans = 0;
        for(int i = 1; i < n; i++)
        {
            if(hash[s[i - 1]] >= hash[s[i]])
                ans += hash[s[i - 1]];
            else
                ans -= hash[s[i - 1]];
        }
        ans += hash[s.back()];
        return ans;
    }
};